package com.wanban.m3u8

import android.app.Activity
import android.os.Bundle
import android.util.Log
import android.widget.Button
import android.widget.ImageView
import com.blankj.utilcode.util.FileUtils
import com.google.android.exoplayer2.ExoPlayer
import com.google.android.exoplayer2.MediaItem
import com.google.android.exoplayer2.ui.StyledPlayerView
import com.wanban.downloader.MultiDownloadManager
import com.wanban.downloader.db.DownloadEntity
import com.wanban.downloader.listener.OnDownloadListener
import com.wanban.downloader.proxy.LocalServer
import com.wanban.downloader.utils.FileDownloadUtils


class MainActivity : Activity() {
    private lateinit var imageView: ImageView
    private lateinit var videoView: StyledPlayerView
    private lateinit var startButton: Button
    private lateinit var start1Button: Button
    private lateinit var pauseButton: Button
    private lateinit var resumeButton: Button
    private lateinit var deleteButton: Button
    private lateinit var playButton: Button
    private lateinit var play1Button: Button
    private var mExoPlayer: ExoPlayer? = null

    private val urls = arrayListOf(
        // 0 多轨道测试
        "http://devimages.apple.com/iphone/samples/bipbop/bipbopall.m3u8",
        // 1 LD线路 在下李佑 第2集  使用key
        "https://hd.ijycnd.com/play/xboJw3ka/index.m3u8",
        // 2 31线路 在下李佑 第2集
        "http://tlapi.newtvmedia.link/fengyu/m3u8/ddbf561bc5de76d67398f54959bc74b3.m3u8",
        // 3 18线路 在下李佑 第2集  使用key
        "https://v.gsuus.com/play/vbmXr1na/index.m3u8",
        // 4 16线路 在下李佑 第2集  使用key
        "https://vod2.kczybf.com/20230522/PIMwpsfu/index.m3u8",
        // 5 15线路 在下李佑 第2集  使用key
        "https://1080p.sbzyplay.com/play/penJv2Pe/index.m3u8",
        // 6 13线路 在下李佑 第2集 量子解析
        "https://hd.lz-cdn18.com/20230522/2759_40d9538b/index.m3u8",
        // 7 12线路 在下李佑 第2集  使用key
        "https://ukzy.ukubf4.com/20230522/VB3XsebQ/index.m3u8",
        // 8 11线路 在下李佑 第2集  使用key
        "https://1080p.huyall.com/play/xboJw3ka/index.m3u8",
        // 9 10线路 在下李佑 第2集
        "https://pptv.sd-play.com/202305/22/fC44smM17h3/video/index.m3u8",
        // 10 9线路 在下李佑 第2集
        "https://s8.fsvod1.com/20230522/Y8u6MOKH/index.m3u8",
        // 11 8线路 在下李佑 第2集  使用key
        "https://vod6.bdzybf7.com/20230523/rP2pAo2I/index.m3u8",
        // 12 7线路 在下李佑 第2集 非凡解析
        "http://lfapi.newtvmedia.link/video_cache/jiexi/0b0175531bbbdb5c510a551c0130bee0.m3u8",
        // 13 6线路 在下李佑 第2集
        "https://v9.dious.cc/20230522/p7I9P1FQ/index.m3u8",
        // 14 5线路 在下李佑 第2集
        "https://sd5.taopianplay1.com:43333/c56b1bc09da3/HD/2023-05-23/15/86529e4d6db7/0ebf890359e0/playlist.m3u8",
        // 15 4线路 在下李佑 第2集  使用key
        "https://hnzy.bfvvs.com/play/nel6qZVb/index.m3u8",
        // 16 3线路 在下李佑 第2集
        "https://sod.bunediy.com/20230523/XwZKOXly/index.m3u8",
        // 17 2线路 在下李佑 第2集
        "https://top.qoqkkhy.com/202305/22/ipsYH7eZsq3/video/index.m3u8",
        // 18 1线路 在下李佑 第2集
        "https://cdn15.yzzy-tv-cdn.com/20230522/13649_1e442ecb/index.m3u8",
    )

    private val sourceIndex = 2
    private val videoName = "数码宝贝"
    private val url = urls[sourceIndex]
    private val url1 = urls[sourceIndex + 1]
    private val imageUrl = "https://image.iapijy.com/cover/98826328c3a60215e53b342560084571.jpg"

//    private val exoParseUrl = "https://www.m3u8-json.xyz/caiya1/obj/?url=ZeQKw4QYQyyOeQpD00ybFY6OkKkSSzxWRhXI4Cm_OV7appeFjHZIi4Ez-SnTHhj4F4a06iZgtNpiDfx93_6MJpCrx_VLoqLShvaVq48zyCfXFioy5dT_nwCgj0MNRRWQcmGsx28Apk7BXyCbXPhZmriquC-Yj_MYPgeYWeNtFXcMEUilyfcnhBQKpcvgtbIxb7t8cayiabrHaP0ayG2JSJpkFzGAs-oJSRiaicF42e2XpqvJUUJs_QY5jf_XtuT6bv72K-zOHKXJdsCUkJEwFMmShJt1NtR8w7gmkpcZ1t22-KJl3CccOCqpH6q9YDg0cKgJ7JjA6oc"
    private val exoParseUrl = "http://tlapi.newtvmedia.link/fengyu/m3u8/d3b7e9a89f5e1d62fc0e66f72623a0c4.m3u8"
    private val task = DownloadEntity(url, videoName, imageUrl)

    private val task1 = DownloadEntity(url1, videoName, imageUrl)

    private val mMyServer = LocalServer()

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        Log.e("main", "进入Main...")
        task.episode = 1
        task1.episode = 2
        initView()
        init()
        bindEvent()
    }


    private fun initView() {
        imageView = findViewById(R.id.iv)
        videoView = findViewById(R.id.exoPlayerView)
        playButton = findViewById(R.id.play)
        play1Button = findViewById(R.id.play1)
        startButton = findViewById(R.id.start)
        start1Button = findViewById(R.id.start1)
        pauseButton = findViewById(R.id.pause)
        resumeButton = findViewById(R.id.resume)
        deleteButton = findViewById(R.id.delete)
        mExoPlayer = ExoPlayer.Builder(this).build()
        videoView.player = mExoPlayer
    }

    private fun init() {



    }


    private fun bindEvent() {
        startButton.setOnClickListener {
            Log.e("main", "点击下载")
            MultiDownloadManager.startDownload(task)
        }
        start1Button.setOnClickListener {
            Log.e("main", "点击下载1")
            MultiDownloadManager.startDownload(task1)
        }
        pauseButton.setOnClickListener {
            Log.e("main", "点击暂停")
            MultiDownloadManager.stopDownload(task.url)
        }

        resumeButton.setOnClickListener {
            MultiDownloadManager.resumeDownload(task.url)
        }
        deleteButton.setOnClickListener {
//            MultiDownloadManager.deleteDownload(task.url)
        }
        playButton.setOnClickListener {
            playVideoUrl(task.getFileName())
        }

        play1Button.setOnClickListener {
            playVideoUrl(task1.getFileName())
        }
    }





    private fun playVideoUrl(videoName: String) {
        val proxyUrl = MultiDownloadManager.getLocalProxyUrl(videoName)
        if (proxyUrl == null) {
            Log.e("main", "找不到代理文件")
            return
        }
        mExoPlayer?.setMediaItem(MediaItem.fromUri(proxyUrl))
        mExoPlayer?.prepare()
        mExoPlayer?.play()
    }


    override fun onStop() {
        super.onStop()
        mExoPlayer?.stop()
    }

    override fun onDestroy() {
        super.onDestroy()
        mExoPlayer?.release()
    }


}